import axios from 'axios';

// 基础API URL
const API_URL = process.env.REACT_APP_API_URL || 'http://localhost:8080/api';

// 创建axios实例
const apiClient = axios.create({
  baseURL: API_URL,
  headers: {
    'Content-Type': 'application/json'
  }
});

// 拦截器添加token到请求头
apiClient.interceptors.request.use(
  config => {
    const token = localStorage.getItem('token');
    if (token) {
      config.headers['Authorization'] = `Bearer ${token}`;
    }
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

// 评论服务对象
const CommentService = {
  // 获取电影评论
  getMovieComments: (movieId) => {
    // 真实环境中使用以下代码
    // return apiClient.get(`/movies/${movieId}/comments`);
    
    // 模拟数据
    return new Promise((resolve) => {
      setTimeout(() => {
        resolve({
          data: mockComments.filter(comment => comment.movieId === parseInt(movieId))
        });
      }, 500);
    });
  },
  
  // 添加电影评论
  addMovieComment: (movieId, commentData) => {
    // 真实环境中使用以下代码
    // return apiClient.post(`/movies/${movieId}/comments`, commentData);
    
    // 模拟添加评论
    return new Promise((resolve) => {
      setTimeout(() => {
        // 生成新评论
        const newComment = {
          id: mockComments.length + 1,
          movieId: parseInt(movieId),
          username: localStorage.getItem('username') || '匿名用户',
          rating: commentData.rating,
          comment: commentData.comment,
          createdAt: new Date().toISOString().split('T')[0]
        };
        
        // 将新评论添加到模拟数据中
        mockComments.unshift(newComment);
        
        resolve({
          data: newComment,
          message: '评论添加成功'
        });
      }, 300);
    });
  },
  
  // 删除自己的评论
  deleteMovieComment: (commentId) => {
    // 真实环境中使用以下代码
    // return apiClient.delete(`/comments/${commentId}`);
    
    // 模拟删除评论
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        const index = mockComments.findIndex(comment => comment.id === commentId);
        
        if (index !== -1) {
          // 从模拟数据中删除评论
          mockComments.splice(index, 1);
          resolve({
            message: '评论删除成功'
          });
        } else {
          reject({
            message: '评论不存在'
          });
        }
      }, 300);
    });
  }
};

// 模拟数据 - 电影评论
const mockComments = [
  {
    id: 1,
    movieId: 1,
    username: '用户1',
    rating: 4.5,
    comment: '很棒的电影，画面很精美，剧情也很紧凑，推荐观看！',
    createdAt: '2023-05-02'
  },
  {
    id: 2,
    movieId: 1,
    username: '用户2',
    rating: 3.0,
    comment: '还行吧，剧情有些地方不太合理，但是整体来说值得一看。',
    createdAt: '2023-05-03'
  },
  {
    id: 3,
    movieId: 1,
    username: '用户3',
    rating: 5.0,
    comment: '太精彩了！这是今年看过的最好的电影，没有之一！',
    createdAt: '2023-05-04'
  },
  {
    id: 4,
    movieId: 2,
    username: '用户4',
    rating: 4.0,
    comment: '张艺谋导演的电影总是那么有特点，画面美，故事也很吸引人。',
    createdAt: '2023-05-01'
  },
  {
    id: 5,
    movieId: 2,
    username: '用户5',
    rating: 3.5,
    comment: '演员阵容强大，故事比较有深度，值得一看。',
    createdAt: '2023-05-05'
  }
];

export default CommentService; 